#include <iostream>
#include <list>
#include <sstream> 
#include <string>

#define forn(i,n) for(int i=0;i<n;i++)
#define forall(it,X) for(typeof((X).begin()) it=(X).begin();it!=(X).end();it++)
#define DIST first
#define PRICE second

using namespace std;


typedef pair<int,int> ii;

bool posible(const list<ii>& estaciones){
	typeof(estaciones.begin()) it = estaciones.begin();
	if(it->DIST > 100) return false;
	
	/* verifico que no haya dos estaciones consecutivas con distancia mayor a la capacidad del tanque de nafta */
	while(it!=estaciones.end()){
		typeof(it) it2 = it;
		it++;
		if( it!=estaciones.end() && it->DIST-it2->DIST > 200 ) return false;
	}
	return true;
}

int costo(const list<ii>& estaciones){
	int pos = 0;
	int costo = 0;
	int nafta = 100;

	/* voy hasta la primera estacion */
	typeof(estaciones.begin()) it = estaciones.begin();
	pos = it->DIST;
	nafta -= it->DIST;

	/* mientras no llegue a destino */
	while(it!=estaciones.end()){
		typeof(it) it2 = it;
		
		/* busco la estacion alcanzable mas barata */
		bool go = true;
		while( it2!=estaciones.end() && go ){
			if( it2->DIST > pos + 200 ){ it2=it; go  = false; }
			else if(it2->PRICE < it->PRICE) go = false;
			else it2++;
		}

		/* si no hay una mas barata y alcanzable... */
		if(it==it2){
			
			/* ...lleno el tanque y... */
			costo += (200 - nafta)*it->PRICE;
			nafta = 200;
			/* ...voy a la siguiente estacion */
			if(it!=estaciones.end()){
				it++;
				nafta -= it->DIST - pos;
				pos = it->DIST;
			}
		}
		
		/*si encontre una estacion mas barata que la que estoy y es alcanzable... */
		else{

			/* ...cargo lo necesario para poder llegar a esa estacion y... */
			int carga = max( it2->DIST-pos-nafta , 0 );
			costo += carga*it->PRICE;
			nafta += carga;

			/* ...voy hasta esa estacion */
			it = it2;
			nafta -= it->DIST - pos;
			pos = it->DIST;
		}
	}
	return costo;
}

int main(){
	int cases; cin >> cases;
	forn(c,cases){
		int distancia_total; cin >> distancia_total;
		list<ii> estaciones;
		
		string s;getline(cin,s);
		ii e;		
		while(1){
			getline(cin, s); istringstream ss(s);
			if(s.find_first_not_of("\r\n")) break;
			ss >> e.DIST >> e.PRICE;
			estaciones.push_back(e);
		}
		estaciones.push_back(ii(distancia_total+100,0));

		/* imprimo el resultado, si es posible, de lo contrario imprimo 'Imposible' */
		if(c>0) cout << endl;
		if(posible(estaciones)) cout << costo(estaciones) << endl;
		else cout << "Impossible" << endl;
	}
}
